package com.example.service;

import com.example.entity.Elevator;
import com.example.ext.entity.ExtElevator;
import org.springframework.web.multipart.MultipartFile;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by youkun on 2017/10/5.
 */
public interface ElevatorService {

    Map<String,Object> queryList(ExtElevator elevator);

    Map<String,Object> queryElevatorList(ExtElevator extElevator);

    Map<String,Object> queryMaintList(Map<String, Object> elevator);

    Map<String,Object> queryJgList(Map<String, Object> elevator);

    Map<String,Object> add(Map<String, Object> map);

    Map<String,Object> update(Elevator elevator);

    Map<String,Object> delete(List<String> ids);

    Map<String,Object>batchDelete(List<String> ids);

    Map<String,Object> queryById(String id);

    Map<String, Object> updatehmMaintDate(Map<String, Object> inMap);

    Map<String, Object> updateqMaintDate(Map<String, Object> inMap);

    Map<String, Object> updatehyMaintDate(Map<String, Object> inMap);

    Map<String, Object> updateyMaintDate(Map<String, Object> inMap);

    Map<String,Object> importElevator(MultipartFile file, String partyId);

    Map<String, Object> updateLatLng(Map<String, Object> inMap);

    Map<String, Object> getLatLng(Map<String, Object> inMap);

    Map<String, Object> updateElevatorPlace(Map<String, Object> inMap);

    Map<String,Object> updateSafeUser(Map<String, Object> inMap);

    Map<String,Object> getElevatorInfoByNum(Map<String, Object> param);

    //双随机一公开查询电梯信息
    Map<String, Object> getElevatorList(Map<String, Object> param);

    /**
     * 按需维保查询电梯信息
     * @param elevator
     * @return
     */
    Map<String, Object> demandMaintGetElevators(ExtElevator elevator);

    /**
     * 无纸化维保查询电梯
     * @param elevator
     * @return
     */
    Map<String,Object> paperlessMaintGetElevators(ExtElevator elevator);

    Map<String, Object> queryCreateCompanys(ExtElevator elevator);

    /**
     * 委托检测配置电梯项
     * @param param
     * @return
     */
    Map<String, Object> detectionGetElevator(Map<String, Object> param);

    /**
     * 修改所属分局
    * */
    Map<String, Object> updateChessboard(Map<String, Object> param);

    /**
     * 初始化数据
     * @param param
     * @return
     */
    Map<String, Object> updateFlag(Map<String, Object> param);

    /**
     * 通过设备Id和外部关联码修改关联信息
     * @param param
     * @return
     */
    Map<String, Object> elevatorUnit(Map<String, Object> param);

    /**
     * @Description:查询无主电梯信息
     * @Date:2019/09/29
     * @Author:lile
     * @param elevator
     * @return
     */
    Map<String, Object> noownerElevatorQuery(ExtElevator elevator);

    /**
     *  @Description:修改无主电梯信息
     *  @Date:2019/10/10
     *  @Author:lile
     * @param param
     * @return
     */
    Map<String,Object> noownerElevatorUpdate(Map<String, Object> param);

    /**
     * @Description:导入电梯台账
     * @param file
     * @param partyId
     * @Author:lile
     * @Date:2019/10/24
     * @return
     */
    Map<String,Object> elevatorLedger(MultipartFile file,String partyId,String partyName);

    /**
     * 批量导入修改电梯类型
     * @param file
     * @param partyId
     * @param partyName
     * @return
     */
    Map<String,Object>elevatorTypeLedger(MultipartFile file,String partyId,String partyName);
    /**
     * 修改电梯类型
     * @param map
     * @return
     */
    Map<String,Object> updateElevatorType(Map<String,Object> map);

    /**
     * 根据设备编号获取电梯详细信息
     * @param id
     * @return
     */
    Map<String, Object> publicUserElevator(String id);

    /**
     * 查询未确认维保工单的信息
     * @param param
     * @return
     */
    Map<String, Object> unconfirmedMaintenance(Map<String, Object> param);

    /**
     * 发送未确认维保工单信息
     * @param param
     * @return
     */
    Map<String, Object> sendNoticeUnconfirmed(List<Map<String, Object>> param);

    /**
     * 使用单位查询未确认维保工单的信息
     * @param param
     * @return
     */
    Map<String, Object> queryNeedconfirmedMaintenance(Map<String, Object> param);

    /**
     * 确认工单
     * @param param
     * @return
     */
    Map<String, Object> sureUnconfirmed(Map<String, Object> param);

    void findTest();

    Map<String, Object> getLatLngByLevel(Map<String, Object> param);

    /**
     * 每天跑电梯台账
     */
    void updateReceiveTableData();
}
